Users of physical or virtual machines commonly install software packages, including package updates, to physical or virtual machines. The software packages can contain a set of related files chosen to perform a given application or task, such as, for example, a group of software applications, drivers, and/or other resources used to install and use messaging or media applications. In instances, a software package can contain application software, operating system software, drivers, patches, and/or other software components grouped as a logical set. In implementations, the package can be stored or encoded as a single file or data object.
Software package update managers exist to help a user initiate and perform software package updates, such as, for example, the “yum” (Yellowdog update manager) package update manager and the Red Hat Network Satellite systems management platform, both available from Red Hat, Inc., Raleigh, N.C., and others. In general, available software package managers are configured to interact with the set of installed packages on a client and with one or more software package repositories, to directly connect to those databases and download available package updates.
Before gaining access to or receiving a software package update, the software package is generated by an integration tool or similar component. For example, the “Buildbot” software development continuous integration tool is a system that automates the compile/test cycle sometimes required by software projects to validate code changes. For further example, the “Jenkins” extendible open source continuous integration server can perform similar functionalities. As used herein, any continuous integration tool or server, such as Buildbot and Jenkins, can be referred to as “build system.” In particular, a build system is configured to build and test source code when the source code changes, or in other situations, to allow developers to remedy errors that the developers may not otherwise have been aware.
However, developers or other entities can have difficulty in actually providing source code to a build system or other tools to be built into a software package. Further, once the source code is provided to the build system or other tools, generating the configurations required for the build can prove difficult. Therefore, it may be desirable to provide systems and methods for building and distributing software packages. Further, it may be desirable to provide systems and methods for receiving locations of source code to be built into software packages and generating configuration commands for the build of the software packages.